<?php

include_once('Client_ES2_submitAnnualConsumptionReport.php');
include_once('Client_ES2_annualConsumption.php');
include_once('Client_ES2_client.php');
include_once('Client_ES2_submitAnnualConsumptionReportResponse.php');
include_once('Client_ES2_annualConsumptionResponse.php');
include_once('Client_ES2_registerNetworkOwner.php');
include_once('Client_ES2_registerNetworkOwnerResponse.php');
include_once('Client_ES2_registerKrado.php');
include_once('Client_ES2_registerKradoResponse.php');
include_once('Client_ES2_getServiceId.php');
include_once('Client_ES2_getServiceIdResponse.php');
include_once('Client_ES2_submitAPERAK.php');
include_once('Client_ES2_aperak.php');
include_once('Client_ES2_submitAPERAKResponse.php');
include_once('Client_ES2_submitBalanceInvoice.php');
include_once('Client_ES2_balanceInvoice.php');
include_once('Client_ES2_submitBalanceInvoiceResponse.php');
include_once('Client_ES2_balanceInvoiceResponse.php');
include_once('Client_ES2_submitMeterData.php');
include_once('Client_ES2_meterData.php');
include_once('Client_ES2_submitMeterDataResponse.php');
include_once('Client_ES2_meterDataResponse.php');
include_once('Client_ES2_submitNewContract.php');
include_once('Client_ES2_clientContractMessage.php');
include_once('Client_ES2_submitNewContractResponse.php');
include_once('Client_ES2_newContractResponse.php');
include_once('Client_ES2_submitEndContract.php');
include_once('Client_ES2_submitEndContractResponse.php');
include_once('Client_ES2_endContractResponse.php');


/**
 * 
 */
class Client_ES2_ElectricitySupplierServiceImplService extends SoapClient
{

  /**
   * 
   * @var array $classmap The defined classes
   * @access private
   */
  private static $classmap = array(
    'submitAnnualConsumptionReport' => 'Client_ES2_submitAnnualConsumptionReport',
    'annualConsumption' => 'Client_ES2_annualConsumption',
    'client' => 'Client_ES2_client',
    'submitAnnualConsumptionReportResponse' => 'Client_ES2_submitAnnualConsumptionReportResponse',
    'annualConsumptionResponse' => 'Client_ES2_annualConsumptionResponse',
    'registerNetworkOwner' => 'Client_ES2_registerNetworkOwner',
    'registerNetworkOwnerResponse' => 'Client_ES2_registerNetworkOwnerResponse',
    'registerKrado' => 'Client_ES2_registerKrado',
    'registerKradoResponse' => 'Client_ES2_registerKradoResponse',
    'getServiceId' => 'Client_ES2_getServiceId',
    'getServiceIdResponse' => 'Client_ES2_getServiceIdResponse',
    'submitAPERAK' => 'Client_ES2_submitAPERAK',
    'aperak' => 'Client_ES2_aperak',
    'submitAPERAKResponse' => 'Client_ES2_submitAPERAKResponse',
    'submitBalanceInvoice' => 'Client_ES2_submitBalanceInvoice',
    'balanceInvoice' => 'Client_ES2_balanceInvoice',
    'submitBalanceInvoiceResponse' => 'Client_ES2_submitBalanceInvoiceResponse',
    'balanceInvoiceResponse' => 'Client_ES2_balanceInvoiceResponse',
    'submitMeterData' => 'Client_ES2_submitMeterData',
    'meterData' => 'Client_ES2_meterData',
    'submitMeterDataResponse' => 'Client_ES2_submitMeterDataResponse',
    'meterDataResponse' => 'Client_ES2_meterDataResponse',
    'submitNewContract' => 'Client_ES2_submitNewContract',
    'clientContractMessage' => 'Client_ES2_clientContractMessage',
    'submitNewContractResponse' => 'Client_ES2_submitNewContractResponse',
    'newContractResponse' => 'Client_ES2_newContractResponse',
    'submitEndContract' => 'Client_ES2_submitEndContract',
    'submitEndContractResponse' => 'Client_ES2_submitEndContractResponse',
    'endContractResponse' => 'Client_ES2_endContractResponse');

  /**
   * 
   * @param array $config A array of config values
   * @param string $wsdl The wsdl file to use
   * @access public
   */
  public function __construct(array $options = array(), $wsdl = 'http://mcrlabs.net:8080/T2ES2/ElectricitySupplierService?wsdl')
  {
    foreach(self::$classmap as $key => $value)
    {
      if(!isset($options['classmap'][$key]))
      {
        $options['classmap'][$key] = $value;
      }
    }
    
    parent::__construct($wsdl, $options);
  }

  /**
   * 
   * @param Client_ES2_submitAnnualConsumptionReport $parameters
   * @access public
   */
  public function submitAnnualConsumptionReport($parameters)
  {
    return $this->__soapCall('submitAnnualConsumptionReport', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_registerNetworkOwner $parameters
   * @access public
   */
  public function registerNetworkOwner($parameters)
  {
    return $this->__soapCall('registerNetworkOwner', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_getServiceId $parameters
   * @access public
   */
  public function getServiceId($parameters)
  {
    return $this->__soapCall('getServiceId', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_registerKrado $parameters
   * @access public
   */
  public function registerKrado($parameters)
  {
    return $this->__soapCall('registerKrado', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_submitAPERAK $parameters
   * @access public
   */
  public function submitAPERAK($parameters)
  {
    return $this->__soapCall('submitAPERAK', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_submitBalanceInvoice $parameters
   * @access public
   */
  public function submitBalanceInvoice($parameters)
  {
    return $this->__soapCall('submitBalanceInvoice', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_submitMeterData $parameters
   * @access public
   */
  public function submitMeterData($parameters)
  {
    return $this->__soapCall('submitMeterData', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_submitNewContract $parameters
   * @access public
   */
  public function submitNewContract($parameters)
  {
    return $this->__soapCall('submitNewContract', array($parameters));
  }

  /**
   * 
   * @param Client_ES2_submitEndContract $parameters
   * @access public
   */
  public function submitEndContract($parameters)
  {
    return $this->__soapCall('submitEndContract', array($parameters));
  }

}
